import http from '../../../utils/request.js';

Page({
    data: {
        days: 7, // 默认查询最近7天
        templates: [], // 机构下的模板列表
        templateIndex: 0, // 默认选中第一个模板（修改此处）
        employees: [],       // 新增：员工列表
        employeeIndex: -1,   // 新增：选中的员工索引
        summaryData: [], // 统计结果
        summaryInfo: null, // 用于存储统计信息
        hasSearched: false // 是否已执行过查询
    },

    onLoad() {
        this.loadOrgTemplates();
        this.loadEmployees();  // 新增：加载员工列表
    },
    
    // 新增：加载员工列表
    async loadEmployees() {
        try {
            wx.showLoading({ title: '加载中...' });
            const res = await http.get('/employees_by_org');
            
            if (res.status === 'success') {
                this.setData({
                    employees: res.data,
                    employeeIndex: res.data.length > 0 ? 0 : -1
                });
                wx.hideLoading();
            } else {
                wx.showToast({
                    title: res.message || '加载员工列表失败',
                    icon: 'none'
                });
            }
        } catch (error) {
            console.error('加载员工列表失败:', error);
            wx.showToast({
                title: '加载失败',
                icon: 'none'
            });
            wx.hideLoading();
        }
    },
    
    // 新增：员工选择变化
    onEmployeeChange(e) {
        this.setData({
            employeeIndex: e.detail.value
        });
    },

    // 加载机构下的模板列表（优化版）
    async loadOrgTemplates() {
        try {
            wx.showLoading({
                title: '加载中...'
            });

            // 直接调用机构模板接口
            const res = await http.get('/org_templates');

            if (res.status === 'success') {
                // 关键修改：初始化时默认选中第一个模板
                this.setData({
                    templates: res.data,
                    templateIndex: res.data.length > 0 ? 0 : -1  // 如果有模板，默认选中第一个
                });
            } else {
                wx.showToast({
                    title: res.message || '加载失败',
                    icon: 'none'
                });
            }
        } catch (error) {
            console.error('加载机构模板失败:', error);
            wx.showToast({
                title: '加载失败',
                icon: 'none'
            });
        } finally {
            wx.hideLoading();
        }
    },

    // 天数输入变化
    onDaysChange(e) {
        const value = e.detail.value;
        if (value && parseInt(value) > 0) {
            this.setData({
                days: parseInt(value)
            });
        }
    },

    // 模板选择变化
    onTemplateChange(e) {
        this.setData({
            templateIndex: e.detail.value
        });
    },

    // 查询业绩统计方法
    async querySummary() {
        const { 
            days, 
            templates, 
            templateIndex, 
            employees,
            employeeIndex
        } = this.data;
    
        // 验证员工选择
        if (employeeIndex === -1 || employeeIndex >= employees.length) {
            wx.showToast({
                title: '请选择员工',
                icon: 'none'
            });
            return;
        }
        
        const empNumber = employees[employeeIndex].employee_number;
        const templateName = templates[templateIndex].template_name;
    
        if (templateIndex === -1 || templateIndex >= templates.length) {
            wx.showToast({
                title: '请选择模板',
                icon: 'none'
            });
            return;
        }
    
        try {
            // wx.showLoading({
            //     title: '统计中...',
            //     mask: true
            // });
    
            const templateName = templates[templateIndex].template_name;
            const res = await http.get('/performance_summary', {
                days: days,
                template_name: templateName,
                emp_number: empNumber  // 新增员工参数
            });
    
            if (res.status === 'success') {
                if (res.data.length === 0) {
                    wx.showToast({
                        title: '未找到业绩数据',
                        icon: 'none',
                        duration: 3000
                    });
                } else {
                    wx.showToast({
                        title: `统计完成${res.data.length}类`,
                        icon: 'success'
                    });
                }
                
                this.setData({
                    summaryData: res.data, // 使用后端返回的原始数据
                    hasSearched: true
                });
            } else {
                wx.showToast({
                    title: res.message || '统计失败',
                    icon: 'none',
                    duration: 3000
                });
            }
        } catch (error) {
            console.error('业绩统计错误:', error);
            wx.showToast({
                title: error.errMsg || '网络错误',
                icon: 'error',
                duration: 3000
            });
        } finally {
            wx.hideLoading();
        }
    }
});